/**
 * 
 */
package com.examen.persistencia.dao.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import oracle.jdbc.OracleTypes;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.SqlOutParameter;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;

import com.examen.modelo.Persona;
import com.examen.persistencia.dao.PersonaDAO;

/**
 * @author Anderson
 *
 */
public class PersonaDAOImpl implements PersonaDAO{
	private JdbcTemplate jdbcTemplate;
	private SimpleJdbcCall simpleJdbcCall;
	
	public void setDataSource(DataSource dataSource) {
		this.jdbcTemplate = new JdbcTemplate(dataSource);
	}
	/* (non-Javadoc)
	 * @see com.examen.persistencia.dao.PersonaDAO#insertarPersona(com.examen.modelo.Persona)
	 */
	@Override
	public Persona insertarPersona(Persona persona) {
		// TODO Auto-generated method stub
		this.simpleJdbcCall = new SimpleJdbcCall(this.jdbcTemplate)
		
		.withProcedureName("ApplicationConstant.SP_PET_OBTENER_PETICION")
		.withoutProcedureColumnMetaDataAccess()
		.useInParameterNames("ApplicationConstant.CODIGOPETICION_ENTRADA")
		
		.declareParameters
		(
				//new SqlParameter(ApplicationConstant.CODIGOPETICION_ENTRADA,OracleTypes.INTEGER),
				//new SqlOutParameter(ApplicationConstant.RFACTPETICION, OracleTypes.CURSOR,new FactPeticionMapper())
		);
		
		//SqlParameterSource parameterSource = new MapSqlParameterSource().addValue(ApplicationConstant.CODIGOPETICION_ENTRADA,Integer.parseInt(id));
	
		//Map<String, Object> out =this.simpleJdbcCall.execute(parameterSource) ;
		List<Persona> lstFactPeticion = new ArrayList<Persona>();
	//	lstFactPeticion=(List<Persona>) out.get("ApplicationConstant.RFACTPETICION");
		
		return (lstFactPeticion.size()>0)?lstFactPeticion.get(0):null;
	}

}
